package org.example.userservice.untils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.nio.charset.StandardCharsets;
import java.util.Date;

//！！！此为AI生成
public class JWTUntils {
    // 签名密钥，用于加密和验证 JWT
    private static final String SECRET = "f23DSs8vH3f9hGsdW4fkms94jx83ksH4fs83Jlsf02Mslz9dkq0slzqpXjfklsd9";

    // 生成 JWT Token，包含用户 ID 和过期时间
    public static String generateToken(Long userId, String rolecode) {
        return Jwts.builder()
                .setSubject(userId.toString()) // 把 userId 存到 JWT 里
                .claim("userRole",rolecode)
                .setExpiration(new Date(System.currentTimeMillis() + 3600_000)) // 1小时过期
                .signWith(SignatureAlgorithm.HS512, SECRET.getBytes(StandardCharsets.UTF_8)) // 设置签名算法
                .compact(); // 构建 token 字符串
    }

    // 解析Token
    public static Claims getClaims(String token) {
        return Jwts.parser()
                .setSigningKey(SECRET.getBytes(StandardCharsets.UTF_8))
                .parseClaimsJws(token)
                .getBody();
    }
}
